package cn.wolfcode.service;

import cn.wolfcode.domain.Employee;
import cn.wolfcode.qo.EmployeeQueryObject;
import cn.wolfcode.qo.PageResult;
import com.github.pagehelper.PageInfo;

import java.util.List;

public interface IEmployeeService {


    /**
     * 添加数据
     * @param employee
     * @param ids
     */
    void save(Employee employee, Long[] ids);

    /**
     * 删除数据
     * @param id
     */
    void delete(Long id);


    /**
     * 修改数据 - 跟添加的区别在于修改的employee对象里必须包含id
     * @param employee
     * @param ids
     */
    void update(Employee employee, Long[] ids);

    /**
     * 查询单条数据
     * @param id 需要查询的id
     * @return
     */
    Employee get(Long id);

    /**
     * 所有数据查询 需要查询的所有数据
     * @return
     */
    List<Employee> listAll();

    /**
     * 分页插件 PageInfo
     * @param qo
     * @return
     */
    PageInfo<Employee> query(EmployeeQueryObject qo);

    /**
     * 用户登录
     * @param username
     * @param password
     * @return
     */
    Employee login(String username, String password);

    /**
     * 用户修改密码
     * @param id
     * @param password
     */
    void updatePwd(Long id,String password);

    /**
     * 批量删除
     * @param ids
     */
    void deleteCheckedList(Long[] ids);

    /**
     * 检测用户名是否存在
     * @param name
     */
    Employee selectByName(String name);

}
